home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / mcdrv / mcdrv068.doc < prev    next >
Text File  |  1997-01-19  |  11KB  |  404 lines

  1.  
  2.     ───────────────────────────────
  3.  
  4.                   MCDRV
  5.  
  6.                Music Creative driver for X680x0
  7.  
  8.                 (c)1993-97 CUL
  9.  
  10.               【 基本的な事柄について 】
  11.  
  12.     ───────────────────────────────
  13.  
  14.                     written by CUL. (1997-01-19)
  15.  
  16. ※ v0.67 で付いたバッファ動的確保について
  17.  
  18.   演奏データの受け取り時、内部バッファが足りない場合に DOS MALLOC でメモリを確
  19. 保します。
  20.  
  21.   演奏には最小限のメモリですむようになりますが、空きメモリが不連続になるという
  22. デメリットもあります。搭載メモリの量や、プログラムの作り方によっては色々と不都
  23. 合が出て来る場合もあります。
  24.  
  25.   バッファを開放するには MMCP.r の /i オプションを使用します。
  26.  
  27.  
  28. ───────────────────────────────────────
  29.                 はじめに
  30. ───────────────────────────────────────
  31.  
  32.   MCDRV は、OPM 8ch,ADPCM 16ch,MIDI 64ch (内部128ch) 合計 88ch (最大128ch) を
  33. 同期/非同期に演奏させることのできる常駐型音源ドライバです。
  34.  
  35.   単体で以下の MIDI インターフェースに対応しています。
  36.  
  37.         MIDIBOARD #1,#2
  38.         POLYPHON-MIDI (PCM8SB.X が必要)
  39.         RS-MIDI
  40.         INTERNAL-MIDI (内蔵 OPM + ADPCM によるエミュレート)
  41.  
  42.   基本システムは以下の通りです。
  43.  
  44.     MCDRV.X        ドライバ本体
  45.     MMCP.R        マルチプレイヤー
  46.     MDX2MDC.R    MDX to MDC コンバータ
  47.     MDZ2MDC.R    MDZ to MDC コンバータ
  48.     RCP2MDC.R    RCP to MDC コンバータ
  49.     SMF2MDC.R    Standard MIDI File to MDC コンバータ
  50.     ZMS2MDC.R    ZMS to MDC コンバータ
  51.  
  52.   技術資料は同梱の MCTEC068.lzh に入っています。
  53.  
  54.   もともとゲーム組み込み用に作成していたので、通常の演奏はもちろん、特殊機能な
  55. どの処理も非常に高速に行なえます。もちろん自己書き換えも一切行なっていません。
  56.  
  57.   また、多種のデータ形式に対応できた方がいいだろうということで独自のフォーマット
  58. MDC形式 (Music Data for MCDRV) を採用しています。
  59.  
  60.   特長は以下の通りです。
  61.  
  62.  
  63.   ・テンポずれ軽減
  64.  
  65.  
  66.   ・OPM TIMER-A を使用したテンポ誤差の少ない演奏が可能
  67.  
  68.     OPM TIMER-A は 16μsec 単位の精度で割り込みを発生させることができます。
  69.     MIDI BOARD でも 8μsec 単位ですので十分な精度と言えるでしょう。
  70.  
  71.         テンポ120で    1日演奏(秒)    誤差(秒)
  72.         正確には    86400.000    -------
  73.         MIDI BOARD    86394.470       5.53
  74.         OPM TIMER-A    86394.470       5.53
  75.         OPM TIMER-B    84934.656    1465.34
  76.  
  77.     演算/処理の仕方によっても変わって来ますがだいたいこんな値です。
  78.  
  79.     また、OPM TIMER-A では 16384μsec 以上の割り込み間隔は設定できませんが、
  80.     ドライバ側で分周動作させることにより、非常にテンポの遅い曲でも正確に演
  81.     奏されるようになっています。(テンポ1から可能)
  82.  
  83.  
  84.   ・OPM TIMER-B を使用して2重以上の演奏が可能
  85.  
  86.     要は効果音演奏のことですが、メイン演奏のテンポと独立して効果音のテンポ
  87.     を管理できます。
  88.  
  89.     といっても効果音全体で1つのテンポですから、効果音は効果音で、テンポを
  90.     一定にして作成しなければなりません。
  91.  
  92.  
  93.   ・動作速度が安定している
  94.  
  95.     極端なデータを除いて負荷が安定しています。
  96.  
  97.     また、1トラックあたりの処理負荷が軽いので、効果音演奏が重なってもそれ
  98.     ほど処理スピードが落ちません。ゲーム等で有利です。
  99.  
  100.  
  101.   ・ドライバ本体のサイズが十分に小さい (メモリを圧迫しない)
  102.  
  103.  
  104.   ・全ゲートタイム独立で計128音のノートが制御可能
  105.  
  106.     拡張すれば、現在のアルゴリズムで 2048 音までの和音が制御可能です。
  107.     といっても速度の限界もありますが・・・今のところはこれで十分でしょう :)
  108.  
  109.  
  110.   ・ADPCM を 16 チャンネル制御可能
  111.  
  112.  
  113.   ・トラック数が可変 (そのうち固定するかも)
  114.  
  115.     現在トラックワークは 256 byte なので1トラック削るとその分常駐量が減り
  116.     ます。はっきり言って意味不明の機能ですが一応ついてます (^^;)
  117.  
  118.  
  119.   ・標準状態でシステム等のADPCM音が演奏に邪魔されない
  120.  
  121.     PCM8等の多重再生ドライバが常駐している場合はそれらの動作に準じます。
  122.  
  123.  
  124.   ・統一バッファによる無駄の少ないデータ管理
  125.  
  126.     今までのドライバのように、MML データと ADPCM データのバッファが別になっ
  127.     ていませんので、
  128.  
  129.         MML (byte)    ADPCM (byte)    合計 (byte)
  130.         1000        320000        321000
  131.         200000        0        200000
  132.         100000        200000        300000
  133.  
  134.     上記のような場合のいずれも 320 kb のバッファ容量だけですべてのデータが
  135.     演奏可能です。
  136.  
  137.     ちなみに別々のバッファ管理で上記のデータをすべて演奏させようとすると、
  138.     それぞれの最大値分バッファが必要なわけですから、
  139.  
  140.         MML (byte)    ADPCM (byte)    合計 (byte)
  141.         200000        320000        520000
  142.  
  143.     のバッファを確保しておく必要があります。
  144.  
  145.     また v0.67 からは内部バッファが足りなくなった場合、システムからメモリを
  146.     確保する機能がついています。
  147.  
  148.  
  149.   支援プログラムを作ってやるという方がいらっしゃれば、是非お願いします。
  150.  
  151.   ドライバの愛称ですが、ある日冗談のつもりで言った「むくどら」というのがなんか
  152. 定着しちゃったんで(笑)、気に入った方はそちらの名前で呼んで下さい。
  153.  
  154.  
  155.  
  156. ───────────────────────────────────────
  157.                 使い方
  158. ───────────────────────────────────────
  159.  
  160.  
  161. ■ 起動(常駐)にあたって
  162.  
  163.  
  164.   起動はコマンドラインから以下のように行ないます。
  165.  
  166.     MCDRV (必要であればオプション指定) [return]
  167.  
  168.  
  169.   細かい動作設定(オプション指定)は以下の通りです。
  170.  
  171.     [オプション]
  172.  
  173.     -R    常駐を解除します
  174.  
  175.     -K    キーボードによるコントロールを禁止します
  176.  
  177.     -Bn    バッファサイズを指定します
  178.         (default 320: 単位 1024 byte)
  179.  
  180.         (注) バッファは演奏データと ADPCM データ共用です
  181.  
  182.     -Tn    トラック数を指定します
  183.         (default 64 : 範囲 32~128)
  184.  
  185.         通常は設定する必要はありません
  186.  
  187.     -Wn    エクスクルーシブ送信ウェイトを指定します
  188.         (default 20 : 単位 1ms)
  189.  
  190.     -I<12RP>
  191.         MIDIインターフェースの順序を指定します
  192.  
  193.         シンボルは以下のように対応します
  194.         '1' ・・・ MIDI BOARD #1
  195.         '2' ・・・ MIDI BOARD #2
  196.         'R' ・・・ RS-MIDI (SCC 5.0MHz)
  197.         'H' ・・・ RS-MIDI (SCC 7.5MHz 改造機(38400bps))
  198.         'P' ・・・ POLYPHON (PCM8SB.X が必要)
  199.         'I' ・・・ INTERNAL-MIDI (内蔵 OPM + ADPCM)
  200.  
  201.         -I12R という様な指定をします
  202.  
  203.     -IA    MIDIインターフェースを自動に割り当てます
  204.  
  205.         MIDIBOARD #1
  206.         MIDIBOARD #2
  207.         POLYPHON-MIDI
  208.         RS-MIDI
  209.         の順で、使用できるものから順に割り当てます
  210.  
  211.  
  212. ■ 常駐後のキーボードコントロール
  213.  
  214.     [SHIFT]+[OPT1]        1/2倍速演奏
  215.     [SHIFT]+[OPT2]          2倍速演奏
  216.     [CTRL]+[OPT1]        1/4倍速演奏
  217.     [CTRL]+[OPT2]        四分音符分ジャンプ演奏
  218.     [XF3]+[OPT1]        フェードアウト
  219.     [XF3]+[OPT2]        フェードイン
  220.     [XF4]+[OPT1]        巻戻し (現在の演奏位置以前にジャンプ)
  221.     [XF5]+[OPT1]        再演奏
  222.     [XF5]+[OPT2]        演奏一時停止
  223.  
  224.  
  225. ───────────────────────────────────────
  226.             基本周辺プログラムの使用法等
  227. ───────────────────────────────────────
  228.  
  229.  
  230. ■ MMCP.R
  231.  
  232.   与えられたファイルから該当するコンバーターを呼び出して、演奏を開始します。
  233.  
  234.     MMCP A:\FILENAME
  235.  
  236.   のように使います。
  237.  
  238.   拡張子が省略されていたら 
  239.  
  240.     MDC,MDX,MDR,RCP,R36,ZMS,OPM,MDZ,MID,STD,MFF,SMF,SNG,MDI,SEQ,MM2,ZDF,MDF
  241.  
  242. を検索します。見つかれば演奏を開始します。
  243.  
  244.  
  245. ■ ???2MDC
  246.  
  247.   コンバータですが、普段はプレイヤとして使います。
  248.  
  249.     MDX2MDC A:\GAME\MDATA.MDX
  250.  
  251.   という風にコマンドラインから指定すれば演奏させることができます。
  252.  
  253.   MDC ファイルを作成する -o オプションがついてますが、これはデバッグやゲームへ
  254. の組み込み等に使用する以外は使いません。
  255.  
  256.  
  257. ■ 注意等
  258.  
  259.   MDX2MDC    MDX(,MDR)
  260.  
  261.         キーオンディレイは再現しません。
  262.         MDR 変換は半分おまけみたいな感じです。
  263.  
  264.  
  265.   MDZ2MDC    MDZ
  266.  
  267.         まだ試作レベルです。特殊コマンドのほとんどを再現しません。
  268.  
  269.  
  270.   RCP2MDC    RCP,R36
  271.  
  272.         データの作り方によってはテンポがおかしくなるかもれません。
  273.  
  274.         環境変数 rcd_ver に RCD のバージョンをセットしておけば、それに
  275.         対応したコンバータ(?toR)が使えるようになります。
  276.  
  277.         (例) set rcd_ver=3.00
  278.  
  279.  
  280.   SMF2MDC    MID,STD,MFF,SMF
  281.  
  282.         フォーマット2には対応していません。
  283.  
  284.  
  285.   ZMS2MDC    ZMS,OPM
  286.  
  287.         特殊機能関係はポルタメントしか対応していません。
  288.  
  289.         和音は16音ポリまでに拡張してあります。
  290.  
  291.  
  292.   OPM/ZMS に関して、現在総クロック・総演奏時間などの付加情報をコンバーターが出
  293. 力しないため、これらを利用した物が無効になっています。
  294.  
  295.   これは、このフォーマット自体が特殊なループ構造を持っているためで、ループの判
  296. 定が非常にやりにくいためです。また、その動作についても決まった処理方法がない様
  297. なので対応は見送りとなっています。(OPMDRV と ZMUSIC とで動作が違う)
  298.  
  299.  
  300.  
  301. ───────────────────────────────────────
  302.                 仕様
  303. ───────────────────────────────────────
  304.  
  305. ヘッダ            '-MCDRV0-'
  306. バージョンコード    $0067
  307. リリースコード        $0001
  308. 対応MDCバージョン    $0004~$0008
  309.  
  310. 特殊効果    ・音程LFO (ディレイ有)
  311.         ・音量LFO (ディレイ有)
  312.         ・ポルタメント
  313.         ・モジュレーションコントロール (ディレイ有)
  314.  
  315.  
  316. ───────────────────────────────────────
  317.             INTERNAL-MIDI について
  318. ───────────────────────────────────────
  319.  
  320.   起動時に PCM8 が常駐している状態で、
  321.  
  322.     MCDRV file.pdx
  323.  
  324. とすると PDX ファイルを読み込みます。MIDI ch.10 でドラムが演奏されるようになり
  325. ます。
  326.  
  327. 認識する物は以下の通りです。
  328.  
  329.     ノートオン・オフ (DVA)
  330.     ピッチベンド
  331.     プログラムチェンジ
  332.     コントロールチェンジ
  333.         $07    VOLUME
  334.         $0B    EXPRESSION
  335.         $65,$64    RPN (Bend Range のみ)
  336.     エクスクルーシブ
  337.         GS RESET
  338.  
  339.  
  340. ───────────────────────────────────────
  341.                  MCDRV規定
  342. ───────────────────────────────────────
  343.  
  344.   本プログラムはフリーソフトウェアとし、商用・私用を問わず複製等に制限は加えら
  345. れない物とします。商用利用も無断で行なえます。
  346.  
  347.   本プログラムは正しい動作をするように制作されていますが、その動作については一
  348. 切保証は有りません。このプログラムにより生じたいかなる損害についても、作者およ
  349. び配布者に責任は及ばないものとします。必ず個人の責任の下に使用して下さい。
  350.  
  351.   本プログラムの改造について、作者の許可を得る必要は有りません。利用者はこれを
  352. 自由に行なうことができます。
  353.  
  354.   明らかに非常識と思われる改造については禁止します。
  355.  
  356.   改造したプログラムの配布については、改造者本人の責任の下に行なって下さい。
  357.  
  358.   著作権等は、原則として作者に帰属します。
  359.  
  360.  
  361. ───────────────────────────────────────
  362.                 謝辞
  363. ───────────────────────────────────────
  364.  
  365.   MCDRV や関連ツールを作成するにあたって、以下のプログラムを使用/参考にさせて
  366. 頂きました。作者、移植者の方々に感謝致します。
  367.  
  368.             (敬称略)
  369.     MXDRV        milk.,K.MAEKAWA, Missy.M, Yatsube
  370.     MADRV        Konoa.
  371.     RCD        HARPOON,TURBO
  372.     STED2        TURBO
  373.     PCM8        H.Etoh
  374.     RDN        Yu~ki/Sys.V80 (& X68030 Shift by J.T)
  375.     MLD        LUM2
  376.     MMLP        LUM2
  377.     MZP        NOVA
  378.     ZMUSIC        ZENJI SOFT
  379.     μEmacs    3.10-J1.43
  380.     CONDRV        卑弥呼☆
  381.     HAS        Y.Nakamura
  382.     HLK        SALT
  383.     DB        SHARP/Hudson
  384.     ADPCMルーチン    Miamie.
  385.     RSLIB.LZH    Ussy.
  386.     CVS        Haji,TURBO
  387.     ?toR        HARPOON,TURBO
  388.  
  389. Special thanks to (敬称略)
  390.  
  391.     YAMU,みあみい,YUKI,あくま,Gao,Hisi,あいりぃ,蓮
  392.     かんな,XAP,COR.
  393.  
  394.     その他大勢の皆様方・・・
  395.  
  396.  
  397. ───────────────────────────────────────
  398. 転載・連絡先
  399.  
  400. 転載は自由に行って下さい。バグや要望などはこちらへ。
  401.  
  402.     DenDenNET                DEN2369 [  かる  ]
  403.  
  404.